﻿'''' <summary>
'''' Interface de Usuario do Sistema Acadêmico
'''' </summary>
'''' <remarks></remarks>
'Public Interface IUsuarioDaoSistemaAcademico

'    Property TabelaUsusiga() As String

'    Property CampoSenha() As String

'    Function Autentica(ByVal _login As String, ByVal _senha As String) As Boolean

'    Function CadastrarUsuario(ByVal _usuarioDto As UsuarioDto) As RetornoDto

'    Function CadastrarUsuario(ByVal _usuarioDto As UsuarioDto, _
'                              ByVal _perfisDto As List(Of PerfilUsuarioDto)) As RetornoDto

'    Function AtualizarUsuario(ByVal _usuarioDto As UsuarioDto) As RetornoDto

'    Function AtualizarUsuario(ByVal _usuarioDto As UsuarioDto, _
'                              ByVal _perfisDto As List(Of PerfilUsuarioDto)) As RetornoDto

'    Function BuscarIdPorNomeUsuarioESenha(ByVal _nomeUsuario As String, _
'                                          ByVal _senha As String) As String
'    ''' <summary>
'    ''' Função que retorna o Nome do usuário pelo login
'    ''' </summary>
'    ''' <param name="_codigoExterno">String</param>
'    ''' <returns>String</returns>
'    ''' <remarks></remarks>
'    Function BuscarPorCodigoExterno(ByVal _codigoExterno As String) As UsuarioDto

'    Function BuscarPerfisUsuarioPorCodigoExterno(ByVal _codigoExterno As String) As List(Of PerfilUsuarioDto)

'    <Obsolete("Utilizar buscas com responsabilidades claras. Esse método transgride o princípio da responsabilidade única")> _
'    Function BuscarPorUsuarioDto(ByVal _usuarioDto As UsuarioDto) As IList(Of UsuarioDto)

'    Function BuscarPorLogin(ByVal _login As String) As UsuarioDto

'    Function BuscarNomePorLogin(ByVal _login As String) As String

'    ''' <summary>
'    ''' Função que retorna a Senha do usuário pelo Login
'    ''' </summary>
'    ''' <param name="_login">String</param>
'    ''' <returns>String</returns>
'    ''' <remarks></remarks>
'    Function BuscarSenhaPorLogin(ByVal _login As String) As String

'    ''' <summary>
'    ''' Função que retorna o E-mail do usuário pelo login
'    ''' </summary>
'    ''' <param name="_login">String</param>
'    ''' <returns>String</returns>
'    ''' <remarks></remarks>
'    Function BuscarEmailPorLogin(ByVal _login As String) As String

'    ''' <summary>
'    ''' Função que retorna o Login do usuário pelo e-mail
'    ''' </summary>
'    ''' <param name="_email">String</param>
'    ''' <returns>String</returns>
'    ''' <remarks></remarks>
'    <Obsolete("Método inconsistente. Evitar o uso. Na atual concepção do sistema um e-mail pode servir a mais de um usuário, portanto o retorno do método deveria ser um array.")> _
'    Function BuscarLoginPorEmail(ByVal _email As String) As String

'    ''' <summary>
'    ''' Sub de alteração de senha do Usuário
'    ''' </summary>
'    ''' <param name="_login">String</param>
'    ''' <param name="_senha">String</param>
'    ''' <remarks></remarks>
'    Sub AlterarSenha(ByVal _login As String, ByVal _senha As String)

'    Function UsuarioEstaBloqueado(ByVal _login As String) As Boolean

'    Function SenhaEstahExpirada(ByVal _login As String) As Boolean

'    Sub AlterarDataExpiracaoSenha(ByVal _login As String, ByVal _novaData As Date)

'End Interface
